<?php
    
	
	require_once "Usuario.php";
	require_once "Conexao.php";
	
	class UsuarioDAO{
		
		
		public static $instance;
		
		
		
		
		public static function getInstance(){
			
			if(isset(self::$instance)){
				
				self::$instance = new DaoUsuario();
			}
			
			return self::$instance;
			
		}
		
		
		
		public function Inserir(Usuario $usuario){
			
			try{
				
				$sql = "INSERT INTO usuarios(nome, usuario, senha, email, nivel, ativo, cadastro, imagem) 
						VALUES(:nome, :usuario, :senha, :email, :nivel, :ativo, :cadastro, :imagem)";
						
				$p_sql = Conexao::getInstance()->prepare($sql);
				
				$p_sql->bindValue(":nome", $usuario->get_nomeUsuario());
				$p_sql->bindValue(":usuario", $usuario->get_Login());
				$p_sql->bindValue(":senha", $usuario->get_senha());
				$p_sql->bindValue(":email", $usuario->get_email());
				$p_sql->bindValue(":nivel", $usuario->get_nivel());
				$p_sql->bindValue(":ativo", $usuario->get_ativo());
				$p_sql->bindValue(":cadastro", $usuario->get_dataCadastro());
				$p_sql->bindValue(":imagem", $usuario->get_imagem());
				
				return $p_sql->execute();
				
				
			}catch(Exception $e){
				
				echo "Ocorreu um erro ao tentar executar esta ação, tente mais tarde".$e;			
				
				
			}

			
		}
		
		public function Editar(Usuario $usuario){
			
			try{
				
				$sql = "UPDATE usuarios SET 
				nome = :nome,
				usuario = :usuario,
				senha = :senha,
				email = :email,
				nivel = :nivel,
				ativo = :ativo,
				cadastro = :cadastro,
				imagem = :imagem 
				where id_usuarios = :idUsuario";
				
				$p_sql = Conexao::getInstance()->prepare($sql);
				
				
				$p_sql->bindValue(":nome", $usuario->get_nomeUsuario());
				$p_sql->bindValue(":usuario", $usuario->get_Login());
				$p_sql->bindValue(":senha", $usuario->get_senha());
				$p_sql->bindValue(":email", $usuario->get_email());
				$p_sql->bindValue(":nivel", $usuario->get_nivel());
				$p_sql->bindValue(":ativo", $usuario->get_ativo());
				$p_sql->bindValue(":cadastro", $usuario->get_dataCadastro());
				$p_sql->bindValue(":imagem", $usuario->get_imagem());
				$p_sql->bindValue(":idUsuario", $usuario->get_idUsuario());
				
				return $p_sql->execute();
				
				
			}catch(Exception $e){
				
				echo $e;
				
			}
					
		}		
		public function Excluir($usuario){
			
			
			try{
				$sql = "DELETE FROM usuarios WHERE usuario = :login";
				
				$p_sql = Conexao::getInstance()->prepare($sql);
				
				$p_sql->bindValue(":login", $usuario);
				
				return $p_sql->execute();			
				
				
			}catch(Exception $e){
							
						
					
				echo "Ocorreu um erro ao tentar executar esta ação, tente mais tarde".$e;			
				
				
			}
			
			
			
		}
		public function BuscaUsuarioLogin($login, $senha){
			
			
			try{
				
				$sql = "SELECT * FROM usuarios WHERE usuario = :login and senha = :senha";
				
				$p_sql = Conexao::getInstance()->prepare($sql);
				$p_sql->bindValue(":login", $login);
				$p_sql->bindValue(":senha", $senha);
				
				return $tes;
				
					
				
				
				
			}catch(Exception $e){
				
				echo $e;
			}
			
			
			
			
			
		}
		
		
		
	}
	
	
?>